package com.to8to.thrift.esb.async.example.server;

import org.apache.thrift.TException;

public class ServiceAClient {
	
	public static String host = "192.168.3.19";
	public static int port = 30000;
	
//	public static String host = "192.168.3.147";
//	public static int port = 30000;
	
	public static int timeout = Integer.MAX_VALUE;
	
	public void test()
	{ 
//		ThriftClient tc = new ThriftClient(ServiceA.class.getName(), host, port, timeout);
//		
//		ServiceA.Iface iface = (ServiceA.Iface)tc.getProxy(new ServiceAClientAdvice());
//		
////		while(true)
//		{
//			try {
//				Thread.sleep(500);
//			} catch (InterruptedException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//			
//			try {
//				iface.valueA(1, 2, 5);
////				iface.plus(111, 222);
//			} catch (Exception e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		}
		
//		tc.close();
	}
	
	static int total = 0;
	
	public void stress()
	{
//		ExecutorService threadPool = Executors.newCachedThreadPool();
//		
//		int T = 5;
//		
//		int Q = 100;
//
//		long t1 = System.currentTimeMillis();
//		
//        for (int i = 0; i < T; i++)
//        {
//            threadPool.submit(new Runnable()
//            {
//        		ThriftClient tc = new ThriftClient(ServiceA.class.getName(), host, port, timeout);
//        		ServiceA.Iface iface = (ServiceA.Iface)tc.getProxy(null);
//                public void run()
//                {
//                    for(int q = 0 ; q < Q; ++ q)
//                    {
//						try {
//							iface.valueA(1.11111, 2.22222, 3.33333);
//						} catch (TException e) {
//							// TODO Auto-generated catch block
//							e.printStackTrace();
//						}
//						
//						total ++ ;
//						
////						if(total%100 == 0)
////							System.out.println(total);
//                    }
//
//                }
//            });
//        }
//        threadPool.shutdown();
//        try
//        {
//            while (!threadPool.awaitTermination(10000, TimeUnit.MILLISECONDS))
//            {
//                Thread.sleep(10000);
//            }
//        }
//        catch (InterruptedException e)
//        {
//        	e.printStackTrace();
//        }
//        
//        long t2 = System.currentTimeMillis();
//        double time = t2 - t1;
//        
//        System.out.println("T=" + T + ", Q=" + Q + ", time=" + time + " ms, qps=" + (T*Q*1000/time));
	}
	
	
	public void testBCD()
	{
//		{
//			ThriftClient tc = new ThriftClient(ServiceB.class.getName(), "192.168.3.147", 12345, timeout);
//			ServiceB.Iface ifaceB = (ServiceB.Iface)tc.getProxy(new ServiceAClientAdvice());
//			
//			try {
//				ifaceB.valueB(1.1);
//			} catch (TException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//			
////			tc.close();
//		}
//
//		{
//			ThriftClient tc = new ThriftClient(ServiceC.class.getName(), "192.168.3.147", 12345, timeout);
//			ServiceC.Iface iface = (ServiceC.Iface)tc.getProxy(new ServiceAClientAdvice());
//			
//			try {
//				iface.valueC(1.1);
//			} catch (TException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//			
////			tc.close();
//		}
//		
//		{
//			ThriftClient tc = new ThriftClient(ServiceD.class.getName(), "192.168.3.147", 12345, timeout);
//			ServiceD.Iface iface = (ServiceD.Iface)tc.getProxy(new ServiceAClientAdvice());
//			
//			try {
//				iface.valueD(1.1, 2);
//			} catch (TException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//			
////			tc.close();
//		}
	}
	
	/**
	 * @param args
	 * @throws TException 
	 */
	public static void main(String[] args) throws TException {
		ServiceAClient c = new ServiceAClient();
		c.test();
//		c.stress();
//		c.testBCD();
	}

}
